#ifndef EJERCICIO2_H_
#define EJERCICIO2_H_

#include <fstream>
#include <iostream>
#include <sstream>
#include <list>

using namespace std;

class Ejercicio2
{
	public:
	
		//contructores:
		//normal:
		Ejercicio2();
		//destructor:
		~Ejercicio2();
		
		void execute( const string&, const string& ) const;
        
	private:
        
        class eje
        {  
            public:
                
                eje();
                
                int origen;
                int destino;
                
                eje& operator=( const eje& );
        };
		
		class Tupla
        {
            public:
                
                Tupla();
                
                bool terminaEni;
                bool terminaEnj;
                
                Tupla& operator=( const Tupla& );
        };
        
        list<int> rutaComercial( int, int, Ejercicio2::eje[] ) const;
		bool hayCamino( bool**, int, int[] ) const;
		void generarCamino(bool**, Tupla**, int, int[] ) const;
};

#endif /*EJERCICIO2_H_*/
